package com.easylinkin.sm.repository;

import java.util.Collection;
import java.util.List;
import org.springframework.stereotype.Repository;

import com.easylinkin.sm.entity.Role;

import site.morn.boot.data.jpa.JpaRepository;

/**
 * 角色数据访问
 *
 * @author majintao
 * @since 1.0.0, 2019/8/19
 */
@Repository
public interface RoleRepository extends JpaRepository<Role, Long> {

  /**
   * 根据角色名称和所属组织机构编码统计数量
   *
   * @param name 角色名称
   * @param departmentId 组织机构编号
   */
  Role findFirstByNameAndDepartmentIdAndDisplay(String name, Long departmentId, Boolean display);

  /**
   * 按用户查询
   *
   * @param userId 用户编号
   * @return 角色集合
   */
  List<Role> findByUsersId(Long userId);

  List<Role> findAllByDepartmentIdInAndIdNotInAndDisplay(Collection departmentIds, Collection ids, Boolean display);

  List<Role> findRolesByDepartmentIdAndDisplay(Long departmentId, Boolean display);

}
